// If/Else (If/Else条件判断) 示例
// 演示 Pascal 中 If/Else 条件判断的各种用法
program p_6_if_else;

{$mode objfpc}{$H+}
// {$mode objfpc} 启用 Object Pascal 模式
// {$H+} 启用长字符串支持（AnsiString）

// 引入单元文件
uses
  SysUtils;  // 系统工具单元，包含常用的系统函数

// 所有变量声明移到这里
var 
  number: Integer;
  age: Integer;
  score: Integer;
  temperature: Real;
  isRaining: Boolean;
  hour: Integer;
  isWeekend: Boolean;
  username: String;
  password: String;

// 程序主入口
begin
  WriteLn('=== Pascal If/Else 条件判断示例 ===');
  WriteLn;
  
  // 简单的If语句
  WriteLn('1. 简单的If语句:');
  number := 15;
  WriteLn('  数字: ', number);
  if number > 10 then
    WriteLn('  这个数字大于10');
  
  WriteLn;
  
  // If/Else语句
  WriteLn('2. If/Else语句:');
  age := 17;
  WriteLn('  年龄: ', age);
  if age >= 18 then
    WriteLn('  已成年')
  else
    WriteLn('  未成年');
  
  WriteLn;
  
  // If/Else If语句
  WriteLn('3. If/Else If语句 (成绩等级):');
  score := 85;
  WriteLn('  分数: ', score);
  if score >= 90 then
    WriteLn('  等级: 优秀')
  else if score >= 80 then
    WriteLn('  等级: 良好')
  else if score >= 70 then
    WriteLn('  等级: 中等')
  else if score >= 60 then
    WriteLn('  等级: 及格')
  else
    WriteLn('  等级: 不及格');
  
  WriteLn;
  
  // 复合条件判断
  WriteLn('4. 复合条件判断:');
  temperature := 25.5;
  isRaining := False;
  WriteLn('  温度: ', temperature:0:1, '°C');
  WriteLn('  是否下雨: ', isRaining);
  
  if (temperature > 20) and (temperature < 30) then
    WriteLn('  温度适宜')
  else
    WriteLn('  温度不适宜');
  
  if (temperature > 30) or isRaining then
    WriteLn('  不适合户外活动')
  else
    WriteLn('  适合户外活动');
  
  WriteLn;
  
  // 嵌套的If语句
  WriteLn('5. 嵌套的If语句:');
  hour := 14;
  isWeekend := True;
  WriteLn('  小时: ', hour);
  WriteLn('  是否周末: ', isWeekend);
  
  if isWeekend then
  begin
    if (hour >= 9) and (hour <= 12) then
      WriteLn('  周末上午，适合外出')
    else if (hour >= 13) and (hour <= 18) then
      WriteLn('  周末下午，适合休息')
    else
      WriteLn('  周末其他时间');
  end
  else
  begin
    if (hour >= 9) and (hour <= 17) then
      WriteLn('  工作时间')
    else
      WriteLn('  休息时间');
  end;
  
  WriteLn;
  
  // 使用逻辑运算符
  WriteLn('6. 使用逻辑运算符:');
  username := 'admin';
  password := '123456';
  WriteLn('  用户名: ', username);
  // 出于安全考虑，不显示密码
  // WriteLn('  密码: ', password);
  
  if (username = 'admin') and (password = '123456') then
    WriteLn('  登录成功')
  else
    WriteLn('  用户名或密码错误');
  
  if not (username = '') then
    WriteLn('  用户名不为空');
  
  WriteLn;
  WriteLn('演示了 Pascal 中 If/Else 条件判断的各种用法');
  
  // 等待用户按键，防止程序窗口立即关闭
  ReadLn;
end.